const baseUrl = "http://127.0.0.1:3000"
let { token } = wx.getStorageSync('userinfo')


// 参数 "options" 从接口函数传递过来
const request = (options) => {
    return new Promise((resolve,reject) => {
    	// 拼接请求地址
        options.url = baseUrl + options.url
        wx.request({
            url: options.url,
            data: options.data?options.data:{},
            method: options.method,

            header: {
                'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',
                'authorization':options.auth?`${token}`:''                           
            },
            success: function (res) {
                if( res.statusCode == 401 ){
                    if( token ){
                        // 无感登录
                        wx.login({
                            success (res) {
                                if (res.code) {
                                    // 发起网络请求
                                    wx.request({
                                        url: baseUrl + '/Noerify/login',
                                        data: {
                                            code: res.code
                                        },
                                        method: 'POST',
                                        header: {
                                            'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',
                                        },
                                        success: function (res) {
                                            if( res.statusCode == 200 ){
                                                console.log(res.data.data);
                                                // 保存token
                                                wx.setStorageSync('userinfo', res.data.data)
                                                // 重新发起请求
                                                request(options)
                                            }else{
                                                wx.showToast({
                                                    title: '登录失败',
                                                    icon: 'none',
                                                })
                                            }
                                        },
                                        fail: function (err) {
                                            showMsg('网络不给力，请稍后再试~')
                                            reject(err)
                                        },
                                    })
                                } else {
                                    console.log('登录失败！' + res.errMsg)
                                }
                            }
                        })
                        return
                    }
                    else{
                        // 确认提示框
                        wx.showModal({
                            title: '提示',
                            content: '您还未登录，是否前往登录？',
                            success (res) {
                                if (res.confirm) {
                                    wx.navigateTo({
                                        url: '/pages/login/login',
                                    })
                                } else if (res.cancel) {
                                    console.log('用户点击取消')
                                }
                            }
                        })
                        return
                    }
                    
                }else if( res.statusCode == 403 ){
                    wx.showToast({
                        title: '您没有权限',
                        icon: 'none',
                    })
                    return
                }else if( res.statusCode == 404 ){
                    wx.showToast({
                        title: '请求地址错误',
                        icon: 'none',
                    })
                    return
                }else if( res.statusCode == 500 ){
                    wx.showToast({
                        title: '服务器错误',
                        icon: 'none',
                    })
                    return
                }
                // 返回成功信息
                resolve(res)    
            },
            fail: function (err) {
                showMsg('网络不给力，请稍后再试~')
                reject(err)
            },
        })
    })
}
export default request
